package com.bt.lms.ui.page.sys.user;

import com.bt.lms.entity.Role;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.control.cell.PropertyValueFactory;

import java.time.LocalDate;
import java.util.List;

/**
 * 角色列表界面（关联角色用）
 *
 * @author 徐大永
 */
public class RoleTableView extends TableView<Role> {

    /**
     * 构建界面
     *
     * @param roles 角色信息*
     */
    public RoleTableView(List<Role> roles) {

        this.setMaxWidth(460);
        if (roles.size() > 0) {
            this.setPrefHeight(roles.size() * 40 + 35);
        } else {
            this.setPrefHeight(70);
        }
        int width = 150;

        //列头
        TableColumn<Role, String> codeTC = new TableColumn<>("角色编码");
        codeTC.setSortable(false);
        codeTC.setMinWidth(width);
        TableColumn<Role, String> nameTC = new TableColumn<>("角色名称");
        nameTC.setSortable(false);
        nameTC.setMinWidth(width);
        TableColumn<Role, LocalDate> installTimeTC = new TableColumn<>("设置时间");
        installTimeTC.setSortable(false);
        installTimeTC.setMinWidth(width);

        //添加进表
        this.getColumns().addAll(codeTC, nameTC, installTimeTC);

        //添加数据
        ObservableList<Role> roleVos = FXCollections.observableArrayList(roles);
        this.setItems(roleVos);

        //映射
        codeTC.setCellValueFactory(new PropertyValueFactory<>("code"));
        nameTC.setCellValueFactory(new PropertyValueFactory<>("name"));
        installTimeTC.setCellValueFactory(new PropertyValueFactory<>("installTime"));

    }

}